Allow combinations of -w, -t, -r for in and out. Tested by Lars Luthman
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 9 Jun 2004 16:16:12 +0000 (16:16 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 9 Jun 2004 16:16:12 +0000 (16:16 +0000)
on yellow eTrex with firmware version 2.20, multi-lingual.

gpsbabel/garmin.c

index 43d536ebdd1228dde26323a49d2d23ce4f74c330..1847a07cc1b51c5452106b46554eea3330e96b95 100644 (file)
@@ -323,20 +323,15 @@ data_read(void)
                return;
        }
 
-       switch(global_opts.objective) {
-               case trkdata: 
-                       track_read();
-                       break;
-               case wptdata:
-                       waypt_read();
-                       break;
-               case rtedata:
-                       route_read();
-                       break;
-               default:
-                       fatal(MYNAME ": Unknown objective %d.\n", 
-                                       global_opts.objective);
-       }
+       if (global_opts.masked_objective & WPTDATAMASK)
+         waypt_read();
+       if (global_opts.masked_objective & TRKDATAMASK)
+         track_read();
+       if (global_opts.masked_objective & RTEDATAMASK)
+         route_read();
+       if (!(global_opts.masked_objective & 
+             (WPTDATAMASK | TRKDATAMASK | RTEDATAMASK)))
+         fatal(MYNAME ": Nothing to do.\n");
 }
 
 static GPS_PWay
@@ -579,18 +574,13 @@ data_write()
        if (poweroff) {
                return;
        }
-       switch(global_opts.objective) {
-               case wptdata:
-                       waypoint_write();
-                       break;
-               case rtedata:
-                       route_write();
-                       break;
-               case trkdata:
-                       track_write();
-                       break;
-       }
 
+       if (global_opts.masked_objective & WPTDATAMASK)
+         waypoint_write();
+       if (global_opts.masked_objective & RTEDATAMASK)
+         route_write();
+       if (global_opts.masked_objective & TRKDATAMASK)
+         track_write();
 }